package com.leyou.gateway.demo;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class JobDemo {

    private Integer i = 0;

    /**
     * 固定延迟定时任务，侧重于两次任务之间执行的间隔时间。
     */
//    @Scheduled(fixedDelay = 2000)
//    public void delayJob(){
//        if(i==1){
//            try {
//                Thread.sleep(3000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }
//        log.info("固定延迟定时任务执行了！");
//        i++;
//    }

    /**
     * 固定频率定时任务
     * 固定频率侧重于，一段时间内执行定时任务的次数
     */
//    @Scheduled(fixedRate = 2000)
//    public void rateJob(){
//        if(i==1){
//            try {
//                Thread.sleep(3000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }
//        log.info("固定频率定时任务执行了！");
//        i++;
//    }

    /**
     * cron表达式定时任务，用于复杂的定时执行场景
     */
//    @Scheduled(cron = "0/2 * * * * ?")
//    public void cronJob(){
//        if(i==1){
//            try {
//                Thread.sleep(3000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }
//        log.info("cron表达式定时任务执行了！");
//        i++;
//    }

}
